
///////////////////////////////////////////////////////////////////////////////
//
//  Copyright (c) 2010, Adam Kubach
//  All rights reserved.
//  BSD License: http://www.opensource.org/licenses/bsd-license.html
//
///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////
//
//  Thread to open file.
//
///////////////////////////////////////////////////////////////////////////////

#include "OpenFileThread.h"

#include "Minerva/Document/MinervaDocument.h"


///////////////////////////////////////////////////////////////////////////////
//
//  Constructor.
//
///////////////////////////////////////////////////////////////////////////////

OpenFileThread::OpenFileThread ( const std::string& filename ) : BaseClass(),
  _filename ( filename )
{
  QObject::connect ( this, SIGNAL ( finished() ), this, SLOT ( deleteLater() ) );
}


///////////////////////////////////////////////////////////////////////////////
//
//  Open the file.
//
///////////////////////////////////////////////////////////////////////////////

void OpenFileThread::run()
{
  // Create the document.
  Minerva::Document::MinervaDocument::RefPtr document ( new Minerva::Document::MinervaDocument );
  document->open ( _filename, 0x0, 0x0 );
  
  emit documentLoaded ( document.release() );
}
